package android.tools;

import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseExpandableListAdapter;
import android.widget.TextView;

public class ExpandableListAdapter extends BaseExpandableListAdapter
{
	private Context _context;
    private String[] groups = { "My course" };
    private String[][] children = {{ "Step 1", "Step 2", "Step 3", "Step 4" }};
    
    public ExpandableListAdapter(Context context)
    {
    	_context = context;
    }

    public Object getChild(int groupPosition, int childPosition)
    {
        return children[groupPosition][childPosition];
    }

    public long getChildId(int groupPosition, int childPosition)
    {
        return childPosition;
    }

    public int getChildrenCount(int groupPosition)
    {
        return children[groupPosition].length;
    }

    public TextView getGenericView()
    {
        // Layout parameters for the ExpandableListView
        AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 32);

        TextView textView = new TextView(_context);
        textView.setLayoutParams(layoutParams);
        // Center the text vertically
        textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);
        // Set the text starting position
        textView.setPadding(36, 0, 0, 0);
        return textView;
    }

    public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
    {
        TextView textView = getGenericView();
        textView.setText(getChild(groupPosition, childPosition).toString());
        
        return textView;
    }

    public Object getGroup(int groupPosition)
    {
        return groups[groupPosition];
    }

    public int getGroupCount()
    {
        return groups.length;
    }

    public long getGroupId(int groupPosition)
    {
        return groupPosition;
    }

    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)
    {
        TextView textView = getGenericView();
        textView.setText(getGroup(groupPosition).toString());
        
        return textView;
    }

    public boolean isChildSelectable(int groupPosition, int childPosition)
    {
        return true;
    }

    public boolean hasStableIds()
    {
        return true;
    }
}
